Tool to reconfigure pin connections between a dut and a tester

ABSTRACT

An improved method of simulating the testing of integrated circuits is provided. A database of desired connections between a tester unit and a DUT for different downbonds is accessed by a multiplexer which sets up the desired connections. The system automatically makes the correct connection for each downbond without manual intervention from the user as was required in traditional simulator systems.

This application claims the benefit of Provisional Application Ser. No. 60/030,946, filed Nov. 15, 1996, and incorporated herein by reference.

BACKGROUND OF THE INVENTION

The present invention relates generally to the testing of integrated circuits. More specifically, in one embodiment, the invention provides an improved computer simulation model of an integrated circuit testing system.

With the high level of complexity of modern integrated circuits, it is becoming increasingly difficult to test integrated circuits to ensure that they were manufactured with no defects. Typically, a device under test ("DUT") is tested by applying predetermined test waveform patterns its input pins. A tester generates the waveforms and monitors the DUT's output pins to ensure that the device operates as expected.

Often, the waveform patterns needed to adequately test the DUT are complex. Consequently, long lead times are needed to generate the waveform patterns and determine what results to expect on the output. Waiting for the first device to be manufactured for the waveform patterns and expected results to be tested is inefficient and costly.

To overcome this inefficiency, manufacturers have created software simulation models of the DUT and the tester to verify the accuracy of the waveforms before having physical parts available on which to test them. The waveforms may be applied to the software models, and the engineer can experiment and work the bugs out of the testing package before applying the waveforms to a physical device. This decreases the time it takes to perform the tests after manufacture of the devices, and prevents damage to the physical device by ensuring that the tester does not drive signals inappropriately.

Because of design considerations, a purchaser of an integrated circuit will sometimes prefer a package which has a fewer number of physical pins than are provided in a standard integrated circuit package. However, for ease of manufacturing, creating a different die for each of these customers may not be desirable for the manufacturer. Instead, the manufacturer often uses a common die, but places it in a package with fewer physical pins. Consequently, only a portion of the pads on the die are connected to a package pin. A fully-bonded package is one in which all pads on the die are connected to a package pin. A downbond is one in which only a subset of the pads are connected to a package pin.

In the past, these downbonds created a problem for the computer models used in the simulation of the devices. When a downbond was to be tested, a person running the test had to manually define which pins of the DUT model to connect to which pins of the tester. Therefore, each time a different downbond was tested, different connection had to be determined and waveform patterns had to be adjusted to correspond with the pin configuration of the new downbond. This method introduced the possibility of error, and was very time-consuming.

Accordingly, an improved method for simulating a device under test is desirable.

SUMMARY OF THE INVENTION

The present invention provides an improved method for simulating the testing of an integrated circuit. A computer model of a particular device under test ("DUT") is provided as is known in the art. A database containing a pin map correlating test parameters such as waveform patterns to the particular DUT is created. The test parameters are selectively applied to the DUT based upon the pin map in the database.

In an embodiment of the present invention, the method comprises the steps of: (1) providing a computer model of the DUT with a plurality of model pins corresponding to physical pins of the DUT; (2) creating a database with a pin map of desired connections between the DUT model pins and pins of the tester; (3) accessing the database; and (4) coupling the DUT model pins to the tester pins in accordance with the pin map.

Also provided, is a method of translating signals of a tester to signals recognizable by a DUT model, and a method of translating signals of a DUT model to signals recognizable by a tester. This is desirable since existing models have been incompatible in the past.

The present invention also provides a method of transferring additional information between the DUT and the tester by use of shadow connections. Shadow connections are made between the DUT and the tester according to the pin map of the database. Through these shadow connections, additional information may be obtained from the computer model that is not available form a physical tester.

A further understanding of the nature and advantages of the inventions presented herein may be realized by reference to the remaining portions of the specification and the attached drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a typical integrated circuit test system;

FIG. 2 is a block diagram of a downbond;

FIG. 3 is a block diagram of a test system having the multiplexer circuit and database of the present invention; and

FIG. 4 is a block diagram of a test system depicting a shadow connection.

DETAILED DESCRIPTION OF THE SPECIFIC EMBODIMENTS

FIG. 1 is a block diagram of a typical integrated circuit test system. The test system comprises a device under test ("DUT") 100 coupled with a tester unit 110. DUT 100 may be an integrated circuit, a programmable logic device, an FPGA, an EPLD, an EEPLD, a PLA, a PAL, a microprocessor, a disk drive, or other digital device or digital system. In an embodiment of the present invention, DUT 100 comprises an integrated circuit die 114 and a DUT package 120. Integrated circuit die 114 has I/O pads 130 through which it communicates with other devices. Although FIG. 1 depicts only four I/O pads for simplicity, a typical integrated circuit die may have many I/O pads. DUT package 120 has a plurality of DUT pins 140 which are electrically connected to I/O pads 130.

Typically, when a DUT package 120 is tested, it is placed in a test socket (not shown) on tester unit 110. This test socket provides tester pins 150 that electrically connect DUT pins 140 to tester unit 150. FIG. 1 conceptually shows these connections as the connections between DUT pins 140 and tester pins 150.

Testing parameters are applied to the DUT to test its validity. Typically, for example, tester unit 110 generates input waveforms for testing DUT 100 and interprets output waveforms from DUT 100. Tester unit 110 generates input waveforms and asserts them on the subset of tester pins 150 that are connected with the input pins of DUT 100. It receives waveforms on the subset of tester pins 150 that are connected to output pins of DUT 100.

This invention is directed toward computer modeling of the devices described above. Computer models of DUT 100 and tester unit 110 are created as is known in the art. The computer models may be created in any number of computer languages such as C, Verilog, Powerview, or VHDL. The computer models simulate the operation of tester unit 110 and DUT 100. The interface to the tester model is given through tester model pins. These tester model pins are computer representations of tester pins 150. The interface to the DUT model is given through DUT model pins that are computer representations of DUT pins 140.

Alternatively, rather than simulating both DUT 100 and tester unit 100, a computer model of DUT 100 may be interfaced with an actual physical tester unit. This allows the user to simulate the operation of a DUT with the actual tester for a more accurate test.

The test system of FIG. 1 depicts a fully bonded DUT. A fully bonded DUT is one in which each I/O pad 130 is connected to a DUT pin 140. As discussed above, having a device in which only a subset of I/O pads 130 connect to a DUT pin 140 is often desirable. This type of package is called a downbond. For example, a fully bonded DUT for integrated circuit die 114 would be a 4-pin device. A downbond would be a 1-, 2-, or 3-pin device.

FIG. 2 depicts a downbond. Here, only I/O pad 130(1) and I/O pad 130(3) of integrated circuit die 114 are connected to DUT pins. Therefore, this is a 2-pin downbond. FIG. 2 illustrates a problem of currently available systems that the present invention solves. Different downbonds require a different mapping of DUT pins to tester pins. For example, in FIG. 1, DUT pin 140(2) connects to tester pin 150(3). However, in the downbond of FIG. 2, DUT pin 240(2) connects to tester pin 250(5). In the past, it has been necessary to manually make these connection for each simulation of a downbond and adjust the waveform patterns accordingly.

The present invention solves this problem by adding additional software components to the test system. FIG. 3 depicts a block diagram of one aspect of the present invention. A multiplexer model ("MUX") 300 is provided between DUT model 310 and tester model 320. MUX 300 provides selectable connections between DUT model 310 and tester model 320. For each downbond, the connections may be different.

The present invention also provides a database 330. Database 330 may be a look-up table that has a pin map for each downbond. MUX 330 references database 300 and provides connections according to the pin map. A designer need only enter the pin mapping information into the database once for each downbond and MUX 300 makes the proper routing according to the pin map.

Table 1 shows an embodiment of a pin map in database 330 for the downbond of FIG. 3. Column 1 of Table 1 lists the pin numbers of tester model 320. Column 2 indicates if the pin is a driver or a receiver (i.e., an input or an output signal.) A "0" indicates that it is a driver, and a "1" indicates that it is a receiver. Accordingly, in the example, tester pin 1 is a receiver (i.e., an input). Column 3 denotes the DUT model pin number which is to be connected to the tester pin listed in Column 1 for this downbond. Column 4 indicates if the DUT pin is a driver or receiver. Of course, the table may also include other information. For example, the table may include pin names, default logic values, or other useful information.

                  TABLE 1     ______________________________________     Tester Pin            Driver/Receiver                           DUT Pin  Driver/Receiver     ______________________________________     1      1              1        0     5      0              2        1     7      0              3        0     ______________________________________

In a preferred embodiment, MUX 300 is originally configured as it would be for a fully bonded implementation. Each tester pin and each DUT model pin are connected to MUX 300. MUX 300 provides connections between the devices as it would make them for the fully bonded DUT. MUX 300 then accesses database 330 to obtain the pin map information for a desired downbond. The connections between the two devices through MUX 300 are changed according to the pin map. The tester sends the waveforms as it would for the fully bonded DUT, but they get rerouted by MUX 300 to the proper DUT pin. In this manner, the waveforms need not be changed when a simulation is run on a downbond.

Software pointers may represent the connections between the devices and MUX 300. Each software pointer holds the address of the entry in database 330 corresponding to the pin making the connection to MUX 330. For example, the software pointer for the MUX connection associated with DUT pin 1 would hold the address of the first entry in Table 1. The pointer associated with tester pin 5 would hold the address of the second entry in Table 1, and so on.

A simulation test may be performed by sending waveforms from tester model 320 to DUT model 310 in the following manner. Tester model 320 sends a signal to MUX 300. MUX 300 transfers the signal to a DUT pin according to the connections that have been made. DUT 310 then receives the signal.

For example, to send a signal "A" from Tester pin 5 to DUT pin 2 in FIG. 3, the following procedure is followed. First, tester 320 sends signal A to MUX pin 3. MUX 300 transfers the signal to MUX pin 6 as specified in the database. DUT pin 2 then receives signal A from MUX pin 6.

Besides providing connection information, MUX 300 may also provide another function. Often, tester model 320 and DUT model 310 have different formats for the waveform signals. Therefore, the signals sent by one device are not recognizable by the other device. To make the models compatible, MUX 300 translates the signals to an appropriate format that the other model may recognize.

In a preferred embodiment, DUT model 310 recognizes, for example, four unique states for each signal. These states may be logical zero ("0"), logical one ("1"), undefined ("X"), and tristate ("Z"). On the other hand, tester model 320 may only recognizes two states, logical one ("1") and logical zero ("0"). Therefore, to represent each of the four states of DUT model 310, tester model 320 passes two bits. These two bits are a "logic bit" and an "xz bit". The "xz bit" is asserted when the state of the pin is undefined or tristate, and not asserted when the state is logical one or logical zero. Table two shows the relationship between DUT states and the tester bits in tabular format.

                  TABLE 2     ______________________________________     Name      DUT State  Tester logic bit                                     Tester xz bit     ______________________________________     Logical Zero               0          0          0     Logical One               1          1          0     Undefined X          0          1     Tristate  Z          1          1     ______________________________________

When tester model 320 sends a signal to DUT model 310, it may first send it to MUX 300. MUX 300 translates the signal according to Table 2. For example, if tester model 320 sends "0" as the logic bit and "1" as the xz bit, MUX 300 translates the signal to "X". DUT model 310 receives the "X" value, which it can recognize, instead of "01" which it may not recognize. Similarly, when DUT model 310 sends a signal to tester model 320, MUX 300 translates the signal to one that tester model 320 can recognize. For example, if DUT model 310 sends a "Z", MUX 300 translates it to a "1" on the logic bit and a "1" on the xz bit. Tester model 320 receives the two bits "11" which it can recognize.

Of course, different translations may be appropriate depending upon the tester model and the DUT model. Such translations will be readily determined by one of skill in the art and are anticipated by this invention.

One advantage to simulating a test before running it with physical parts is the ability to have access to extra information that is not readily available from the physical part. Another aspect of the present invention takes advantage of this ability. In FIG. 4, a DUT model 400 and a tester model 410 are coupled together through a MUX 420 in the manner described above. MUX 420 receives connection information from pin maps in a database 430. In an embodiment of this aspect of the present invention, each of these connections may also be matched by a shadow connection. The shadow connection allows additional information to pass between DUT model 400 and tester model 410.

Shadow connection 450 may connect signals that are internal to the devices. For example, shadow connection 450 may be a connection between output enable block ("OEBs"). The OEB of the model does not correspond to an accessible physical pad on the integrated circuit die. Instead, it corresponds to the output enable line that gates the input/output driver for an integrated circuit die pad. A single OEB exists for each physical pin. The connections between OEBs of tester model 410 and DUT model 400 parallel connections between the integrated circuit die pads and the tester pins according to the pin map. FIG. 4 depicts an example of a connection between physical pins as physical connection 440, and between OEBs as shadow connection 450.

A purpose of modeling these OEBs is to detect when an output is being driven when it should not be, or not being driven when it should be. This allows the simulated test to ensure that damage will not occur to the physical parts when they are placed in the tester due to errors in the test patterns. For example, if the tester attempts to drive output pads of the integrated circuit the part may be damaged. Also, a test can determine when an output pin that should be driving at a certain time is not being enabled.

By monitoring the OEB pins, the tester may gain information on the state of the DUT model pin associated with it. For example, if the DUT model pin is an input, yet the OEB pin is asserted, then the system must have an error. A person of skill in the art can easily envision other uses of the OEB pins and the shadow connection in general. In another embodiment of the present invention, each pin may have more than one shadow connection if more information is desirable.

Although specific examples have been used to describe the present invention in detail, the examples given are not intended to limit, nor do they imply additional limitations to the present invention. The scope of the invention is limited only by the claims. A person of skill in the art may recognize many variations to the system that do not depart from the scope or spirit of the present invention. For example, different logic values, programming languages, data formats may be easily created. Such variations are included within the scope of this invention. 

What is claimed is:
 1. A method for testing a device under test ("DUT") comprising:selecting a DUT for test; providing a set of testing parameters; providing a database of pin mappings between said test parameters and said DUT; and selectively routing said test parameters to said DUT according to said pin mappings.
 2. The method of claim 1 wherein said DUT is an integrated circuit.
 3. The method of claim 1 wherein said DUT is a programmable logic device.
 4. The method of claim 1 wherein said DUT is simulated within a computer system.
 5. A computer software product for testing a device under test ("DUT"), said computer software product residing on a storage medium and comprising:computer readable code causing a processor to select a DUT for test; computer readable code causing a processor to provide a set of testing parameters computer readable code causing a processor to provide a database of pin mappings between said test parameters and said DUT; and computer readable code causing a processor to selectively route said test parameters to said DUT according to said pin mappings.
 6. A method for simulating the testing of a device under test ("DUT") having a plurality of DUT pins, said DUT being coupled with a tester having a plurality of tester pins comprising the steps of:providing a DUT model, said DUT model being a computer software model of said DUT, said DUT model having a plurality of DUT model pins representing said plurality of DUT pins; creating a database comprising a pin map of desired connections between said plurality of tester pins and said plurality of DUT model pins; accessing said database to retrieve said pin map; and coupling said plurality of DUT model pins to said plurality of tester pins according to said pin map.
 7. The method of claim 6 wherein said database comprises a plurality of pin maps, each of said plurality of pin maps having desired connections between said tester pins and said DUT model pins.
 8. The method of claim 6 wherein said coupling step further comprises the steps of:providing a multiplexer model; connecting said plurality of tester pins to said multiplexer model; connecting said plurality of DUT model pins to said multiplexer model; and coupling said DUT model pins to said tester pins through said multiplexer model in accordance with said pin map.
 9. The method of claim 8 further comprising the steps of:providing a tester signal comprising a test waveform for a tester pin; sending said tester signal to said multiplexer model; transferring said tester signal to a particular DUT model pin in accordance with said pin map; and receiving said tester signal at said particular DUT model pin.
 10. The method of claim 9 further comprising the steps of:translating said tester signal to a signal recognizable by said DUT model.
 11. The method of claim 8 further comprising the steps of:providing a DUT signal comprising a test waveform for a DUT model pin; sending said DUT signal to said multiplexer model; transferring said DUT signal to a particular tester pin in accordance with said pin map; and receiving said DUT signal at said particular tester model pin.
 12. The method of claim 11 further comprising the steps of:translating said DUT signal to a signal recognizable by said tester.
 13. The method of claim 6 wherein said tester is a computer software model of a tester unit, said tester model having a plurality of tester model pins representing said plurality of tester pins.
 14. The method of claim 13 wherein said database is stored in a random access memory, said plurality of DUT model pins being represented by a first set of software pointers, each of said first set of software pointers holding an address of a location in said database corresponding to a desired connection for a particular DUT model pin, said plurality of tester pins being represented by a second set of software pointers, each of said second set of software pointers holding an address of a location in said database corresponding to a desired connection for a particular tester model pin.
 15. The method of claim 13 further comprising the step of:providing a plurality of shadow connections between said DUT model and said tester model, said plurality of shadow connections being connected between said DUT model and said tester model according to said pin map.
 16. The method of claim 15 wherein said plurality of shadow connections corresponds to connections between output enable lines of said DUT model pins and output enable lines said tester model pins.
 17. The method of claim 6 wherein said DUT is an integrated circuit.
 18. A method of simulating the testing of a device under test ("DUT"), said DUT being coupled with a tester comprising the steps of:providing a model of said DUT; sending a test signal recognizable by said tester from said tester to said DUT model; translating said test signal to a DUT signal recognizable by said DUT; and receiving said DUT signal at said DUT model.
 19. The method of claim 18 wherein said test signal comprises a first bit and a second bit, said first bit and said second bit having a first state and a second state.
 20. The method of claim 18 wherein said DUT signal has at least four unique states.
 21. The method of claim 18 further comprising the steps of:sending a DUT signal recognizable by said DUT model from said DUT model to said tester; translating said DUT signal to a tester signal recognizable by said tester; and receiving said tester signal at said tester.
 22. A test system for the testing of a device under test ("DUT"), said DUT having a DUT pin, said DUT being coupled with a tester having a tester pin comprising:a computer software model of said DUT, said DUT model having a DUT model pin corresponding to said DUT pin; a computer software model of said tester, said tester model having a tester model pin corresponding to said tester pin, said tester model pin being coupled with said DUT model pin; a shadow pin model connection whereby information relating to a state of an internal signal of said DUT model and an internal signal of said tester model is transferrable between said DUT model and said tester model.
 23. The test system of claim 22 wherein said DUT model internal signal is a signal reflecting the state of an output enable line for said DUT mode.
 24. The test system of claim 22 wherein said tester model internal signal is a signal reflecting the state of an output enable line for said tester model. 